package edu.uclm.esi.iso5.tresenraya.dominio.Test;

import junit.framework.TestCase;
import edu.uclm.esi.iso5.tresenraya.dominio.FTERD;
import edu.uclm.esi.iso5.tresenraya.dominio.Jugador;
import edu.uclm.esi.iso5.tresenraya.dominio.Tablero9x9;
import edu.uclm.esi.iso5.tresenraya.dominio.exception.NoTienesElTurnoException;
import static org.junit.Assert.*;

public class TestsDelCduPoner extends TestCase {
	
	
	// MIerdaca superra
	public void test() {
		FTERD fachada=new FTERD();
		Jugador pepe=new Jugador("pepe@gmail.com");
		Jugador ana=new Jugador("ana@gmail.com");
		fachada.add(pepe);
		fachada.add(ana);
		fachada.solicitudDeJugador(pepe);
		fachada.unirAPartida(ana, pepe);

		assertTrue(fachada.getJugadores().size()==2);
		assertTrue(fachada.getTableros().size()==1);
		
		Tablero9x9 t=fachada.getTableros().get(pepe.getEmail());
		assertSame(t.getJugadorA(), pepe);
		assertSame(t.getJugadorB(), ana);
		assertSame(t.getJugadorA(), t.getJugadorConElTurno());
		String cadena81="000000000000000000000000000"+"000000000000000000000000000"+"000000000000000000000000000";
		assertTrue(t.toString().equals(cadena81));
		
		try {
			fachada.poner("ana@gmail.com", 0, 0, 0, 0);
		} catch(NoTienesElTurnoException e) {
			
		} catch(Exception e) {
			fail("Se esperaba NoTienesElTurnoException y se ha lanzado "+e.toString());
		}
		
		try {
			fachada.poner("pepe@gmail.com", 0, 0, 0, 0);
			cadena81="-100000000000000000000000000"+"000000000000000000000000000"+"000000000000000000000000000";
			String s=t.toString();
			System.out.println(s);
			assertTrue(s.equals(cadena81));
		} catch(NoTienesElTurnoException e) {
			
		} catch(Exception e) {
			fail("Se esperaba NoTienesElTurnoException y se ha lanzado "+e.toString());
		}
		
		try {
			fachada.poner("ana@gmail.com", 0, 0, 0, 0);
			cadena81="110000000000000000000000000"+"000000000000000000000000000"+"000000000000000000000000000";
			String s=t.toString();
			System.out.println(s+" maisojadsaoijoaidjsa");
			assertTrue(s.equals(cadena81));
		} catch(NoTienesElTurnoException e) {
			fail("Se esperaba NoTienesElTurnoException y se ha lanzado "+e.toString());
		} catch(Exception e) {
			fail("No se "+e.toString());
		}
	}
}
